17 字节-一面-飞书
> Last Format Time:6/12/2026 21:03:57
6/12/26 【理由】原文无 H1,章节使用 ### code / ### 提问,违反层级规则。 原内容:缺失 H1;首段使用 ### code 与 ### 提问
提问
- const\let\var的区别
- defer与async的区别
- 强缓存与协商缓存
- 在使用json进行深拷贝的时候,需要注意的问题
- css的position属性的各个值,以及相对绝对定位,以及fixed定位
code
闭包
这道题目是在一个数组中存了很多匿名函数,匿名函数在for循环中访问外部的闭包的:
function func() {
var arr = [];
// var i 是个闭包
// var i = 0
// for(; i < 3; i++ ) { ... } 这样写也可以
for (var i = 0; i < 3; i++) {
arr.push(() => {
console.log(i);
});
}
return arr;
}
var result = func();
result.forEach((item) => {
item(); // 期望输出 0, 1, 2,但实际打印了三个 3
});
TS 泛型函数
一个函数的参数是一个对象和一个他的键,需要用TS标出类型:
function getProperty<T, K extends keyof T>(obj: T, key: K): T[K] {
return obj[key];
}
最长连续重复字符的子串
function fn(str) {
let pre = 0
let cur = 1
let n = str.length
let ans = Array(n).fill(0)
if (n === 0) return { subStr: '', pos: 0 }
if (n === 1) return str
for (let i = 1; i < n; i++) {
if (str[cur] === str[pre]) {
cur++
ans[pre] = cur - pre + 1
} else {
cur++
pre++
}
}
let maxValue = Math.max(...ans)
let maxIndex = ans.indexOf(maxValue)
return { subStr: str.slice(maxIndex, maxIndex + maxValue - 1 < 0 ? 0 : maxIndex + maxValue - 1), pos: maxIndex }
}
// console.log(fn("ads11er"))
// console.log(fn("ads111er"))
// console.log(fn("adsw11677777er"))
// console.log(fn("adsw11677777er"))
// // console.log(fn())
// console.log(fn(""))
// console.log(fn("1111111111"))
console.log(fn("1234567"))
// console.log(fn("11223344"))